// 时间戳转换时间
export	function timestampToTime(timestamp, flag) {
	if(timestamp) {
		let newVla = (timestamp + '').length > 10 ? timestamp : timestamp * 1000;
		var date = new Date(newVla); //时间戳为10位需*1000，时间戳为13位的话不需乘1000
		
		var year = date.getFullYear();
		var month = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1)
		let day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
		
		let hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours()
		let minute = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()
		let second = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds()
		let time = ''
		if(flag) {
			time = `${year}-${month}-${day} ${hour}:${minute}:${second}`
		}
		else {
			time = `${year}-${month}-${day}`
		}
		return time
	}
	else {
		 return ''
	}
	//注意：如果是Unix时间戳记得乘以1000。比如：PHP函数time()获得的时间戳就要乘以1000。			
}		

export function fn_reTrim(str){
	return (str + '').trim() || ''
}
export function randomArr(min, max) {
	if(min && max) {
		return Math.round(Math.random() * (max - min)) + min;
	}
}

export function retJSONArr(str) {
	let res = str
	if (str && typeof (str) == 'string') {
		res = JSON.parse(str)
	}
	return res;
}

export function fn_retjson(obj) {
	if(obj != undefined) {
		return JSON.parse(JSON.stringify(obj))
	}
	else {
		return ''
	}
}


export function alertTost(title, icon_, time) {
	uni.showToast({
		title,
		icon: icon_ ? icon_ : 'none',
		duration: time ? time : 2000,
	})
}

export function alertModal(content, title) {
	uni.showModal({
		title: title || '提示',
		content: content || '',
		showCancel: false,
	})
}

let flagGate = true;	
let flagTimer = null;
export function clickgate(second, txtshow) {
	if(flagGate) {
		clearTimeout(flagTimer)
		flagTimer = setTimeout(()=>{
			flagGate = true
		}, second || 1000)
		flagGate = false
		return true
	}
	else {
		if(txtshow) {
			alertTost('请稍后再试')
		}
		return false
	}
}

export function checkStr(str, type) { // 常用正则验证，注意type大小写
    switch (type) {
        case 'phone': // 手机号码
            return /^1[3|4|5|6|7|8|9][0-9]{9}$/.test(str)
        case 'tel': // 座机
            return /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/.test(str)
        case 'card': // 身份证
            return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(str)
        case 'pwd': // 密码以字母开头，长度在6~18之间，只能包含字母、数字和下划线
            return /^[a-zA-Z]\w{5,17}$/.test(str)
        case 'postal': // 邮政编码
            return /[1-9]\d{5}(?!\d)/.test(str)
        case 'QQ': // QQ号
            return /^[1-9][0-9]{4,9}$/.test(str)
        case 'email': // 邮箱
            return /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(str)
        case 'money': // 金额(小数点2位)
            return /^\d*(?:\.\d{0,2})?$/.test(str)
        case 'URL': // 网址
            return /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/.test(str)
        case 'IP': // IP
            return /((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))/.test(str)
        case 'date': // 日期时间
            return /^(\d{4})\-(\d{2})\-(\d{2}) (\d{2})(?:\:\d{2}|:(\d{2}):(\d{2}))$/.test(str) ||
                /^(\d{4})\-(\d{2})\-(\d{2})$/.test(str)
        case 'number': // 数字
            return /^[0-9]$/.test(str)
        case 'english': // 英文
            return /^[a-zA-Z]+$/.test(str)
        case 'chinese': // 中文
            return /^[\u4E00-\u9FA5]+$/.test(str)
        case 'lower': // 小写
            return /^[a-z]+$/.test(str)
        case 'upper': // 大写
            return /^[A-Z]+$/.test(str)
        case 'HTML': // HTML标记
            return /<("[^"]*"|'[^']*'|[^'">])*>/.test(str)
        default:
            return true
    }
}

//转化颜色 rgb 转 hsb
export function getHexColor(color) {
	var values = color
		.replace(/rgba?\(/, '')
		.replace(/\)/, '')
		.replace(/[\s+]/g, '')
		.split(',')
	var a = parseFloat(values[3] || 1),
		r = Math.floor(a * parseInt(values[0]) + (1 - a) * 255),
		g = Math.floor(a * parseInt(values[1]) + (1 - a) * 255),
		b = Math.floor(a * parseInt(values[2]) + (1 - a) * 255)
	return '#' +
		('0' + r.toString(16)).slice(-2) +
		('0' + g.toString(16)).slice(-2) +
		('0' + b.toString(16)).slice(-2) 
	// + ('0' + a.toString(16)).slice(-2)
		
}
//转化颜色 hsb 转 rgb
export function hex2Rgbasds(bgColor, alpha = 1) {
	let color = bgColor.slice(1); // 去掉'#'号
	let rgba = [
		parseInt("0x" + color.slice(0, 2)),
		parseInt("0x" + color.slice(2, 4)),
		parseInt("0x" + color.slice(4, 6)),
		alpha
	];
	return "rgba(" + rgba.toString() + ")";
}

// 拆分 rgba
export function splitRgba(color) {
	var values = color
		.replace(/rgba?\(/, '')
		.replace(/\)/, '')
		.replace(/[\s+]/g, '')
		.split(',')
	var a = parseFloat(values[3] || 1),
		r = Math.floor(a * parseInt(values[0]) + (1 - a) * 255),
		g = Math.floor(a * parseInt(values[1]) + (1 - a) * 255),
		b = Math.floor(a * parseInt(values[2]) + (1 - a) * 255)
	return {
		r,g,b,a
	}	
}
	
